package cn.hicard.auth.service;

import java.util.List;

import cn.hicard.auth.entity.MgRoleSource;
import cn.hicard.auth.entity.MgRoleinfo;

/**
 * 角色信息管理业务接口
 * @author zhangy
 *
 */
public interface RoleinfoService {
	
	/**
	 * 保存角色信息
	 * @param role
	 * @throws Exception
	 */
	void save(MgRoleinfo role)throws Exception;
	
	/**
	 * 修改角色信息
	 * @param role
	 * @throws Exception
	 */
	void update(MgRoleinfo role)throws Exception;
	
	/**
	 * 删除角色信息
	 * @param pkRole
	 * @throws Exception
	 */
	void delete(int pkRole)throws Exception;
	
	/**
	 * 查询角色信息
	 * @param pkRole
	 * @return
	 * @throws Exception
	 */
	MgRoleinfo getByPk(int pkRole)throws Exception;
	
	/**
	 * 查询所有角色信息
	 * @return
	 * @throws Exception
	 */
	List<MgRoleinfo> getAll()throws Exception;
	
	/**
	 * 查询用户拥有的角色信息
	 * @return
	 * @throws Exception
	 */
	List<MgRoleinfo> getByUser(int pkUserinfo)throws Exception;
	
	/**
	 * 查找出所有与角色关联的资源主键
	 * @param pkRoleinfo
	 * @return
	 * @throws Exception
	 */
	List<Integer> findOwnSourcePks(int pkRoleinfo)throws Exception;

	/**
	 * 保存角色与资原关联数据<BR/>
	 * 先删除旧有已分配的与pkRole关联的，再保存新的rslist
	 * @param rslist
	 */
	void saveRoleSource(int pkRole, List<MgRoleSource> rslist)throws Exception;
}
